!(function(){
	var itemIndex = 0;
	var flag2= 0;
	// 判断是否有这个类
	function hasClass(el, className) {
		if (el && el.className !== void 0) {
			var classList = el.className.split(/\s+/);
			if (classList.indexOf(className) >= 0) {
				return true;
			}
			else return false;
		} else {
			return false;
		}
	}

	// 删除这个类
	function deleteClass(el, className) {
		if (hasClass(el,className)) {
			var classList = el.className.split(/\s+/);
			var deleteIndex = classList.indexOf(className);
			classList.splice(deleteIndex, 1);
			el.className = classList.join(' ');
		} else {
			return ;
		}
	}

	// 添加这个类
	function addClass(el, className) {
		if (hasClass(el, className)) {
			return false;
		} else {
			var classList = el.className.split(/\s+/);
			classList.push(className);
			el.className = classList.join(" ");
		}
	}
	
	// 清空所有的active类
	function mapRemove(sameEl,className) {
		var tagEl = document.getElementsByClassName(sameEl);
		for (var i = 0, j = tagEl.length; i != j; i ++) {
			deleteClass(tagEl[i], className);
		}
	}

	// 对dot绑定点击事件。清空所有active，然后对特定的绑定active
	function bindDot() {
		// if (flag) {
		// 	clearTimeout(flag);
		// }
		
		var tagDot = document.getElementsByClassName("dot-container")[0];
		tagDot.addEventListener("click", function(e) {
			if (flag2) {
				clearTimeout(flag2);
			}
			var target = e.target;
			if (hasClass(target,"dot")) {
				if (itemIndex === target.dataset.index) {
					return ;
				} else {
					itemIndex =  target.dataset.index;
					var tagpos = -(itemIndex) * 600 ;
					moveTo(tagpos);
					// itemIndex ++;
					// if (itemIndex >= 5) {
					// 	itemIndex = 0;
					// }
					// mapRemove("img", "active");
					// addActive("img",itemIndex-1);
				}
			} else {
				return ;
			}
		});
	}

	// 对前后按钮绑定点击事件
	function bindBottom() {
		var buttonParent = document.getElementsByClassName("button")[0];
		buttonParent.addEventListener("click", function(e){
			if (flag2) {
				clearTimeout(flag2);
			}
			var target = e.target;
			if (target.className === "up") {
				itemIndex --;
				if (itemIndex < 0) {
					itemIndex = 4;
				}
				// mapRemove("img", "active");
				// addActive("img",itemIndex-1);
			} else if (target.className === "down") {
				itemIndex ++;
				if (itemIndex > 4) {
					itemIndex = 0;
				}
				// mapRemove("img", "active");
				// addActive("img",itemIndex-1);
			} else {
				return ;
			}
			var tagpos = -(itemIndex) * 600 ;
			console.log(itemIndex);

			console.log(tagpos);
			moveTo(tagpos);
			// itemIndex ++;
			// if (itemIndex >= 5) {
			// 	itemIndex = 0;
			// }
		});
	}

	// 为正确的index增加active类
	// function addActive(el,index) {
	// 	var dom = document.getElementsByClassName(el);
	// 	addClass(dom[index],"active");
	// }

	// 鼠标暂停
	function mousehover() {
		var tag = document.getElementsByClassName("container")[0];
		tag.addEventListener("mouseenter",function() {
			// if (flag) {
			// 	clearTimeout(flag);
			// }
			if (flag2) {
				clearTimeout(flag2);
			}
		});
		tag.addEventListener("mouseleave",function(){
			// setinter();
			run();
		});
	}

	function bindEvent() {
		bindDot();
		bindBottom();
		mousehover();
	}

	// 执行绑定事件
	bindEvent();

	// 设置定时器函数
	function setinter() {
		itemIndex ++;
		if (itemIndex >= 5) {
			itemIndex = 0;
		}
		mapRemove("img", "active");
		// addActive("img",itemIndex-1);
		// console.log(itemIndex);
		flag = setTimeout(setinter,4000);
	}
	// setinter();

	//取得css样式
	function getStyle(element,attr) {
		return element.currentStyle ? element.currentStyle[attr] : window.getComputedStyle(element,null)[attr] || 0;
	}

	// 运动函数
	function moveTo(endPos) {
		var element = document.getElementsByClassName("contain")[0];
		if (element.move) {
			clearTimeout(element.move);
		}
		var startPos = parseInt(getStyle(element,"left"));
		// console.log(startPos);	
		if (startPos === endPos) {
			// itemIndex ++;
			// if (itemIndex >= 5) {
			// 	itemIndex = 0;
			// }
			return true;
		}
		if (startPos < endPos) {
			startPos += 10;
		}
		if (startPos > endPos) {
			startPos -= 10;
		}
		element.style.left = startPos + 'px';
		element.move = setTimeout(function() {
			moveTo(endPos);
			itemIndex ++;
			if (itemIndex >= 5) {
				itemIndex = 0;
			}
		},1);
		// console.log(x.offsetLeft);
		// x.style.left = 0 + 'px';
		// console.log(x.style.left);
		// x.style.left = 30 + 'px';
	}
	// moveTo(-600);
	function run() {
		var tagpos = -(itemIndex) * 600 ;
		console.log(itemIndex,tagpos);
		moveTo(tagpos);
		itemIndex ++;
		if (itemIndex >= 5) {
			itemIndex = 0;
		}
		flag2 = setTimeout(run,3000); 
	}
	run();

})();